pub fn goldbach_conjecture() -> u64 {
    let is_prime = |n: u64| -> bool {
        if n < 2 {
            return false;
        }
        for i in 2..=((n as f64).sqrt() as u64) {
            if n % i == 0 {
                return false;
            }
        }
        true
    };

    let mut non_conforming = Vec::new();
    let mut num = 9;

    while non_conforming.len() < 2 {
        if !is_prime(num) {
            let mut conforms = false;
            for prime in 2..num {
                if is_prime(prime) {
                    let remainder = num - prime;
                    if (remainder / 2) as f64 == ((remainder as f64) / 2.0).sqrt().floor().powi(2) {
                        conforms = true;
                        break;
                    }
                }
            }
            if !conforms {
                non_conforming.push(num);
            }
        }
        num += 2;
    }

    non_conforming.iter().sum()
}
